iT邦幫忙

2023 iThome 鐵人賽

DAY 4
0

從昨天的資源架構可以知道,我們的後端是使用ECS作為server,
因此會設計一套ECS使用的CI/CD架構如下圖
https://ithelp.ithome.com.tw/upload/images/20230919/20152618fKTPHqpaL8.png
綠色部分為CodePipeline,
他是要串起整套CI/CD的資源,
負責用來區分各階段要由哪個資源來做事情,並且會設定觸發CI/CD的事件來源
CodePipeline中我們會切成三個區塊,
分別是來源階段(Source Stage)、建置階段(Build Stage)以及部署階段(Deploy Stage)

  • 來源階段(Source Stage):
    • CodeCommit是Repository,用來存放程式碼的存放庫,也是我們開發完程式後,會將程式碼推送至此。
    • S3 Bucket,在這裡我們會需要存放的是ECS所使用的組態(Task Definition),後續會再詳細說明。
  • 建置階段(Build Stage)
    • CodeBuild是AWS所提供的建置環境,在這裡會作為Docker的建置使用。
  • 部署階段(Deploy Stage)
    • CodeDeploy是AWS提供的部署工具,可以用來部署EC2與ECS等。我們這次會使用它來進行ECS藍綠部署。
  • CodePiepline外有ECS與ECR,ECR是用來存放Image的資源。

整個流程為

  1. 程式開發完成,將程式碼推送至CodeCommit,觸發CodePipeline啟動
  2. CodePipeline在Souece stage拿取CodePipeline的程式碼與S3Bucket中的組態黨備用
  3. 將Source stage取得的來源透過CodeBuild進行Docker包版,並產生ECS要使用的Image
  4. 將Image存放至ECR中
  5. 包板完成後觸發CodeDeploy
  6. CodeDeploy進行ECS藍綠部署
  7. 部署時ECS提取ECR內的Image使用

以上就是這次的CI/CD架構
裡面有一些沒提過的東西,後續幾天會在各自的章節交代清楚~


上一篇
D03_架構介紹-資源架構
下一篇
D05_聽起來跟EC2很像的ECS_三種模式
系列文
從0開始的AWS ECS CICD30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言